﻿using System.Collections.Generic;
using AccesoData;
using Entidades;
using NUnit.Framework;

namespace Pruebas.PruebasDao
{
    [TestFixture]
    class PruebaDaoPersonal : CrearEntidades
    {
        [TestCase]
        public void PruebaAgregarPersonal()
        {
            Personal ajustador = FabricaEntidades.ObtenerPersonal();

            ajustador.Nombre = "nombreAjustador";
            ajustador.Apellido = "apellidoAjustador";
            ajustador.Cedula = 18001107;
            ajustador.LetraRif = 'V';
            ajustador.Rif = 18001107;
            ajustador.Lugar = 1;
            ajustador.Telefono = 04166259591.ToString();
            ajustador.Telefono2 = 04123765008.ToString();
            ajustador.Telefono3 = 04166288989.ToString();

            ajustador.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoPersonal().AgregarPersonal(ajustador);

            Assert.AreNotEqual(-1, ajustador.Id);
        }

        [TestCase]
        public void PruebaEditarPersonal()
        {
            Personal ajustador = DatosPersonal();

            ajustador.Apellido = "PruebaEditar";
            ajustador.Nombre = "pruebaEditar";
            ajustador.Cedula = 13716690;
            ajustador.Rif = 13716690;
            ajustador.Lugar = 1;
            ajustador.Telefono = 04166259581.ToString();
            ajustador.Telefono2 = 04123763008.ToString();
            ajustador.Telefono3 = 04166228989.ToString();

            bool respuesta =
                DAO.ObtenerFabrica(1).ObtenerDaoPersonal().EditarPersonal(ajustador);

            Assert.IsTrue(respuesta);

        }

        [TestCase]
        public void PruebaObtenerPersonal()
        {
            Personal ajustador = DatosPersonal();

            Personal prueba =
                DAO.ObtenerFabrica(1).ObtenerDaoPersonal().ObtenerPersonal(ajustador.Id);

            Assert.NotNull(prueba);

            Assert.AreEqual(ajustador.Nombre, prueba.Nombre);
            Assert.AreEqual(ajustador.Apellido, prueba.Apellido);
            Assert.AreEqual(ajustador.Cedula, prueba.Cedula);
        }

        [TestCase]
        public void PruebaObtenerAjustadores()
        {
            List<Personal> lista = new List<Personal>();

            DatosPersonal();
            lista = DAO.ObtenerFabrica(1).ObtenerDaoPersonal().ObtenerAjustadores();

            Assert.NotNull(lista);
            Assert.IsNotEmpty(lista);

        }
    }
}
